package com.zyh.homework.test6;

import java.util.ArrayList;

/**
 * @Author zyh
 * @Date 2024/7/30
 * @Description TODO
 */
public class MyArrays {

    /*
        参数ArrayList<Integer> list:要进行操作的集合对象
        要求：对list集合对象中的元素进行反转(第一个和最后一个交换，第二个和倒数第二个交换，第三个和倒数第三个交换...)
     */
    public static void reverse(ArrayList<Integer> list) {
        for (int start = 0, end = list.size() - 1; start <= end; start++, end--) {
            Integer temp = list.get(start);
            list.set(start, list.get(end));
            list.set(end, temp);
        }
        System.out.println(list);
    }

    /*
        参数ArrayList<Integer> list:要进行操作的集合对象
		要求：求出list集合对象中的最大值并返回
     */
    public static Integer max(ArrayList<Integer> list) {
        //假设集合第一个元素为最大
        int max = list.get(0);
        for (Integer i : list) {
            if (i > max) {
                max = i;
            }
        }
        return max;
    }

    /*
        参数ArrayList<Integer> list:要进行操作的集合对象
		要求：求出list集合对象中的最小值并返回

     */
    public static Integer min(ArrayList<Integer> list) {
        int min = list.get(0);
        for (Integer i : list) {
            if (i < min) {
                min = i;
            }
        }
        return min;
    }

    /*
        参数ArrayList<Integer> list:要进行操作的集合对象
		参数Integer i:需要在集合中查找的元素
		要求：求出元素i在list集合中第一次出现的索引，如果没有返回-1

     */
    public static int indexOf(ArrayList<Integer> list, Integer i) {
        Integer index = -1;
        for (int j = 0; j < list.size(); j++) {
            if (list.get(j) == i) {
                index = j;
            }
        }
        return index;
    }

    /*
        参数ArrayList<Integer> list:要进行操作的集合对象
		参数Integer oldValue:需要被替换掉的原值
		参数Integer newValue：替换后的新值
		要求：将list集合中的所有值为oldValue的元素替换为newValue
     */
    public static void replaceAll(ArrayList<Integer> list, Integer oldValue, Integer newValue) {
        while (list.contains(oldValue)) {
            for (int i = 0; i < list.size(); i++) {
                if (list.get(i)==oldValue){
                    list.set(i,newValue);
                }
            }
        }
    }
}
